package cn.phonevane.dao;

import java.util.List;

/**
 * 底层数据操作接口
 * @author xuanaiwu
 */
public interface BaseDao<T> {
	
	/**
	 * @param  class,id
	 * @return 一个对象
	 */
	public Object load(Class entityClass, Long id);
	
	/**
	 * @param  hql
	 * @return 集合
	 */
	public List find(String hql);
	
	/**
	 * @param  hql
	 * @return 任意数据
	 */
	public List<T> findByAll(String hql);
	
	
	/**
	 * 使用 hql 语句进行操作
	 * 
	 * @param hql
	 *            HSQL 查询语句（使用回调函数访问外部变量，必须是final的）
	 * @param first
	 *            开始取数据的下标
	 * @param count
	 *            读取数据记录数
	 * @return  集合
	 */
	public List find(final String hql,final int first,final int count);
	
	/**
	 * @param object
	 * @return boolean
	 */
	public boolean save(Object object);
	

}
